// 引入 Koa 构造函数
const Koa = require("koa");
const app = new Koa();

// 中间件：本质上就是一个函数，只不过这个函数有两个参数可以使用 ctx, next

// 匿名函数
app.use(async (ctx, next) => {
    ctx.body = "1";
    await next();
    ctx.body += "5";
});

// 普通的具名函数
async function main(ctx, next) {
    ctx.body += "2";
    await next();
    ctx.body += "4";
}

// 可以通过函数的名字，使用这个函数
app.use(main);

// 具名箭头函数
const arrow = async (ctx) => {
    ctx.body += "3";
};

app.use(arrow);

app.listen(8000, () => {
    console.log("Koa server running at http://localhost:8000");
});
